package com.dlc.shop.service;

/**
 * @author lanhai
 */
public interface SegmentService {

    /**
     * 获取ID
     * @param key
     * @return
     */
    Long getSegmentId(String key);

    /**
     * 获取指定位数的ID
     * @param key
     * @param len
     * @return
     */
    Long getSegmentId(String key, Integer len);

    /**
     * 获取随机码，用于提货码、核销之类需要固定长度的场景
     * Long类型返回的id，前面无法填充0，导致长度没有固定
     * @param key
     * @param length id的长度
     * @returnlllllllhn[
     */
    String getSegmentCode(String key, Integer length);

    /**
     * 生成携带日期格式的id（非分库分表类型id）
     * 默认长度为15位，也是从1开始递增，但前面拼接了日期，所以长度固定，中间使用0来填充，每日可生成的id数量为十亿
     * @param key
     * @return
     */
    Long getDateFormatSegmentId(String key);
}
